Digital signal processing (DSP) software and hardware are widely used in many systems, ranging from low-cost consumer electronics to sophisticated communications products. In many systems, an analog signal received through a channel is input to an analog to digital converter (ADC), which converts the signal to digital. The digital signal is then further processed by the DSP components.
Ideally, every portion of the signal path, including the signal source, the receiver's analog front-end, the ADC, should be linear, thus allowing traditional linear signal processing techniques to be used to correct for any linear distortion that corrupts the received signal. In practice, however, most systems are nonlinear. There are many sources that introduce nonlinearity to the signal path, including the transmitter/receiver electronics and the channel medium. A major source of the nonlinearity is the ADC. Component mismatches, quantization errors, and limited bandwidth of amplifiers are some of the factors contributing to the nonlinearities.
It would be desirable to improve system performance by reducing the nonlinearities. However, there has been limited success in using conventional filtering techniques to equalize the nonlinearities. Since nonlinear transfer functions are often expressed as higher order polynomials, it is difficult to model these nonlinear functions and to design filters accordingly. The complexity of nonlinear filters often introduces instability and convergence problems to the system. It would be desirable to have a way to model the nonlinearities effectively. It would also be useful to be able to adjust a nonlinear model without introducing instabilities.